<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<head>
	<title>MixColumns</title>
</head>
<body>
	<h1>MixColumns</h1>
	
	<p>This is the transformation after ShiftRows. During the MixColums process, the four bytes of each column of the state are comined using a linear transformation that is inversible (in order to conduct the decryption). The funtion MixColumns uses as input four bytes and returns another four. It must be noted that any change in the input bytes will influence in the rest of the 4 bytes outputs.<br>
	Along with ShiftRows, MixColumns conforms the diffusion phase of the AES cipher.<br>
	<p>Let's see how the MixColumns works in detail:<br>
	MixColumns operates columns by column of the matrix, taking each one as a polynomial of degree 3. This means that the columns are taken as polynomials in the field GF(2<sup>8</sup>) (Galois Field) and each one is multiplied module x<sup>4</sup>+1 with a fixed polynomial c(x), given by: <br>
	
	c(x)= {03}x<sup>3</sup> + {01}x&sup2; + {01}x + {02}<br><br>
	This can be clearly seen in this image: 	
	<p><img style="border-width: 0px;" src="resources/matriz2.png" width="356" height="174" /></p>
	<p>This matrix was carefully chosen, basing on the theory of error-correcting codes.</p>
	
	<p><img style="border-width: 0px;" src="resources/mixcolumns.png" width="300" height="159" />
	
	
	
	

</body>
</html>
